package com.zy.Lambda;

import org.junit.Test;

import java.util.function.Consumer;

public class UseConsumer
{
    /*
    Consumer：消费型接口
        抽象方法：accept(Type t)：接受一个参数进行消费，无需返回结果
        默认方法：andThen(Consumer after):先消费然后再消费。
        先执行andThen接口的accept()方法，然后再执行andThen()方法参数after的accept()方法
    * */
    @Test
    public void test1()
    {
        Consumer consumer=(s)-> System.out.println("hahahh"+s);
        consumer.accept("皮卡丘");
        //打印结果：hahahh皮卡丘
    }

    @Test
    public void test2()
    {
        //先执行andThen接口的accept()方法，然后再执行andThen()方法参数after的accept()方法
        String []car={"保时捷,红色","宝马,黑色","法拉利,黄色"};
        Consumer<String> consumer1=(s)-> System.out.print("车名："+s.split(",")[0]+"  ");
        Consumer<String> consumer2=(s)-> System.out.println("颜色："+s.split(",")[1]);
        for (String s:car)
            consumer1.andThen(consumer2).accept(s);
        /*
        打印结果：
            车名：保时捷  颜色：红色
            车名：宝马  颜色：黑色
            车名：法拉利  颜色：黄色
        */
    }
}
